package cn.example.demo.common.secure.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

/**
 * 系统用户登录会话信息
 *
 * @author Lizuxian
 * @create 2022/4/17 15:32
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginUser implements Serializable {
    private static final long serialVersionUID = 1L;

    private Integer userId;    // 主键
    private String username;    // 用户名
    private String realName;    // 姓名
    private String avatar;  // 头像
    private String sex; // 性别
    private String duty; // 单位职务
    private String phone;   // 电话
    private String email;   // 邮箱
    private String idNumber;   // 身份证号
    private Date createTime;    // 创建时间
    private Date lastModifyTime;    // 最后修改时间
    private Date lastLoginTime; // 最后一次登录时间
    private Short status;   // {1:正常, 0:禁用, -1:删除标记}

    // ----------- 需关联生成的信息 -------------
    /**
     * 机构ID
     */
    private Integer deptId;

    /**
     * 机构名称
     */
    private String dept;   // 机构名称

    /**
     * 角色
     */
    private Set<Integer> roleIds;

    /**
     * 按钮集合
     */
    private Set<String> buttons;

    /**
     * 资源集合
     */
    private Set<String> resources;

    /**
     * 数据范围集合
     */
    private Set<String> dataScopes;

    /**
     * 指定机构集合
     */
    private Set<String> organizations;
}
